PySide 6/PyQt 6快速开发与实战

您所在的位置:网站首页 qfiledialog pyqt PySide 6/PyQt 6快速开发与实战

PySide 6/PyQt 6快速开发与实战

2023-05-08 04:30| 来源: 网络整理| 查看: 265

链接:https://pan.baidu.com/s/1q_9hPJx2NP6JzIqbrX_B_A?pwd=iuvt 

提取码:iuvt

本书本书共有9章,包含PySide 6/PyQt 6常用知识及一些经典应用。每个章节侧重点不同,但相对独立,读者根据目录即可获取自己所需的内容。第1章介绍PySide/PyQt的入门知识;第2章介绍Qt Designer的详细用法;第3章和第4章介绍PySide/PyQt的基本窗口控件的使用方法;第5章介绍PySide/PyQt的特殊控件——表格与树;第6章介绍一些高级窗口控件;第7章介绍信号/槽和事件;第8章介绍Python的扩展应用;第9章介绍PySide/PyQt的实战应用。本书旨在帮助读者以最短的时间掌握PySide 6/PyQt 6的基础知识并能够实战应用,希望本书对有Python程序开发需求的读者有帮助。

第1章  认识PySide 6/PyQt 6 1

1.1  PySide 6/PyQt 6框架简介 1

1.1.1  从GUI到PySide/PyQt 1

1.1.2  PySide 6/PyQt 6的进展 3

1.1.3  PySide/PyQt相对于Qt的优势 4

1.1.4  PySide 6/PyQt 6与PySide 2/PyQt 5的关系 5

1.1.5  PyQt 5与PyQt 4 6

1.1.6  其他图形界面开发库 7

1.2  搭建PySide 6/PyQt 6环境 7

1.2.1  在Windows下使用PySide 6/PyQt 6环境 8

1.2.2  在Windows下自行搭建PySide 6/PyQt 6环境 8

1.2.3  在macOS和Linux下搭建PySide 6/PyQt 6环境 14

1.2.4  测试PySide 6/PyQt 6环境 16

1.3  PySide 6快捷工具简介 16

1.3.1  Qt设计师 17

1.3.2  Qt用户交互编译器 18

1.3.3  Qt资源编译器 18

1.3.4  Qt帮助文档 19

1.3.5  Qt翻译器与其他 19

1.4.1  Eric 7的安装 21

1.4.2  Eric 7的相关配置 23

1.4.3  Eric 7的基本使用 24

1.4.4  PyCharm的安装 28

1.4.5  使用PyCharm配置PySide 6/PyQt 6环境 30

1.4.6  PyCharm的基本使用 32

1.4.7  VSCode的安装 35

1.4.8  VSCode的配置 36

1.4.9  VSCode的基本使用 37

1.5  PySide/PyQt的启动方式 40

第2章  Qt Designer的使用 43

2.1  Qt Designer快速入门 43

2.1.1  新建主窗口 44

2.1.2  窗口主要区域介绍 45

2.1.3  查看.ui文件 47

2.1.4  将.ui文件转换为.py文件 49

2.1.5  将.qrc文件转换为.py文件 54

2.1.6  界面与逻辑分离 54

2.2  布局管理入门 55

2.2.1  使用布局管理器进行布局 56

2.2.2  使用容器控件进行布局 59

2.3  Qt Designer实战应用 60

2.3.1  绝对布局 61

2.3.2  使用布局管理器进行布局 63

2.3.3  其他流程补充 70

2.3.4  测试程序 73

2.4  信号与槽关联 75

2.4.1  简单入门 75

2.4.2  获取信号与槽 80

2.4.3  使用信号/槽机制 85

2.5  菜单栏与工具栏 85

2.5.1  界面设计 85

2.5.2  效果测试 90

2.6  添加图片(资源文件) 92

2.6.1  创建资源文件 92

2.6.2  添加资源文件 93

2.6.3  转换资源文件 96

2.6.4  效果测试 97

第3章  基本窗口控件(上) 100

3.1  主窗口 100

3.1.1  窗口类型 100

3.1.2  创建主窗口 102

案例3-1  创建主窗口 103

3.1.3  移动主窗口 106

3.1.4  添加图标 106

3.1.5  显示状态栏 107

案例3-2  QLabel标签的基本使用 111

3.2.1  对齐 112

3.2.2  设置颜色 112

3.2.3  显示HTML信息 112

3.2.4  滑动与单击事件 112

3.2.5  加载图片和气泡提示QToolTip 113

3.2.6  使用快捷键 114

案例3-3  QLabel快捷键 114

3.3  QLineEdit 115

案例3-4  QlineEdit的基本用法 116

3.3.1  对齐、tooltip和颜色设置 117

3.3.2  占位提示符、限制输入长度、限制编辑 117

3.3.3  移动指针 118

3.3.4  编辑 119

3.3.5  相关信号与槽 119

3.3.6  快捷键 120

3.3.7  隐私保护:回显模式 121

案例3-5  回显模式的显示效果 121

3.3.8  限制输入:验证器 123

案例3-6  限制输入:验证器 123

3.3.9  限制输入:掩码 124

案例3-7  输入掩码InputMask 125

3.4  QTextEdit和QPlainTextEdit——多行文本显示 126

3.4.1  QTextEdit 126

案例3-8  QTextEdit的使用——支持HTML和Markdown 127

3.4.2  QPlainTextEdit 129

案例3-9  QPlainTextEdit控件的使用方法 129

3.4.3  快捷键 130

3.4.4  QSyntaxHighlighter 132

案例3-10  QSyntaxHighlighter控件的使用方法 132

3.4.5  QTextBrowser 133

案例3-11  QTextBrowser控件的使用方法 134

3.5  按钮类控件 137

3.5.1  QAbstractButton 137

3.5.2  QPushButton 139

案例3-12  QPushButton的使用方法 140

3.5.3  QRadioButton、QGroupBox、QButtonGroup 142

案例3-13  QRadioButton的用法 143

3.5.4  QCheckBox 145

案例3-14  QCheckBox的使用方法 146

3.5.5  QCommandLinkButton 149

案例3-15  QCommandLinkButton的使用方法 149

3.6  QToolButton 151

案例3-16  QToolButton的使用方法 151

3.7  QComboBox 157

案例3-17  QComboBox的使用方法 158

3.7.1  查询 159

3.7.2  增加 160

3.7.3  修改 160

3.7.4  删除 162

3.7.5  信号与槽函数 162

3.7.6  模型/视图框架 164

3.7.7  QFontComboBox 164

案例3-18  QFontComboBox的使用方法 166

3.8  QSpinBox和QDoubleSpinBox 168

案例3-19  QSpinBox的使用方法 169

3.8.1  步长和范围 170

3.8.2  循环 170

3.8.3  前缀、后缀与千分隔符 170

3.8.4  特殊选择 171

3.8.5  信号与槽 171

3.8.6  自定义显示格式 172

案例3-20  QSpinBox的自定义格式显示 172

案例3-21  QDoubleSpinBox的使用方法 173

3.9  日期时间 174

3.9.1  日期时间相关控件 174

3.9.2  QDateTimeEdit、QDateEdit和QTimeEdit 175

案例3-22  QDateTimeEdit控件的使用方法 175

3.9.3  QCalendarWidget 182

案例3-23  QCalendarWidget控件的使用方法 184

3.10  滑动控件 185

3.10.1  QAbstractSlider 186

3.10.2  QSlider 187

案例3-24  QSlider的使用方法 188

3.10.3  QDial 189

案例3-25  QDial控件的使用方法 190

3.10.4  QScrollBar 191

案例3-26  QScrollBar控件的使用方法 192

3.11  QScrollArea 194

案例3-27  QScrollArea控件的使用方法 195

第4章  基本窗口控件(下) 198

4.1  对话框类控件(QDialog族) 198

4.1.1  对话框简介 199

4.1.2  模式对话框 199

4.1.3  非模式对话框 200

案例4-1  QDialog的基本使用方法 200

4.1.4  扩展对话框 205

案例4-2  QDialog扩展对话框的使用方法 205

4.1.5  QMessageBox 207

案例4-3  QMessageBox控件的使用方法 208

4.1.6  QInputDialog 213

案例4-4  QInputDialog控件的使用方法 214

4.1.7  QFontDialog 216

案例4-5  QFontDialog控件的使用方法 216

4.1.8  QFileDialog 218

案例4-6  QFileDialog控件的使用方法 218

4.1.9  QColorDialog 223

案例4-7  QColorDialog控件的使用方法 224

4.1.10  QProgressDialog和QProgressBar 226

案例4-8  QProgressDialog和QProgressBar的使用方法 227

4.1.11  QDialogButtonBox 232

案例4-9  QDialogButtonBox控件的方法 234

4.2  窗口绘图类控件 237

4.2.1  QPainter 237

案例4-10  QPainter控件的简单用法 240

4.2.2  QBrush 242

案例4-11  QBrush的使用方法 245

4.2.3  QPen 247

案例4-12  QPen的方法 249

4.2.4  几个绘图案例 251

案例4-13  综合使用QPainter、QBrush和QPen的方法 252

案例4-14  QPainter的使用方法 252

案例4-15  QPainter实时绘图 254

案例4-16  绘制同心圆 255

4.2.5  QPixmap 256

4.2.6  QImage 258

案例4-17  QPixmap控件和QImage控件的使用方法 264

4.3  拖曳与剪贴板 267

4.3.1  QMimeData 268

案例4-18  QMimeData控件的使用方法 270

4.3.2  Drag与Drop 272

案例4-19  QDrag的使用方法1 273

案例4-20  QDrag的使用方法2 277

4.3.3  QClipboard 281

案例4-21  QClipboard控件的使用方法 282

4.4  菜单栏、工具栏、状态栏与快捷键 284

4.4.1  菜单栏QMenu 285

案例4-22  QMenuBar、QMenu和QAction的使用方法 285

4.4.2  快捷键QkeySequence(Edit)、QShortcut 290

案例4-23  QShortcut的使用方法 294

案例4-24  QKeySequenceEdit的使用方法 295

4.4.3  工具栏QToolBar 298

案例4-25  QToolBar的使用方法 298

4.4.4  QStatusBar 302

案例4-26  QStatusBar控件的使用方法 302

4.5  其他控件 305

4.5.1  QFrame 305

案例4-27  QFrame的使用方法 307

4.5.2  QLCDNumber 309

案例4-28  QLCDNumber的使用方法 309

第5章  表格与树 310

5.1  QListWidget 310

5.1.1  增/删项目 311

5.1.2  选择 311

5.1.3  外观 313

5.1.4  工具、状态、帮助提示 313

5.1.5  信号/槽 313

5.1.6  上下文菜单 314

案例5-1  QListWidget控件的使用方法 314

5.2  QTableWidget 323

5.2.1  创建 323

5.2.2  基于项目的操作 324

5.2.3  基于行列的操作 324

5.2.4  导航 324

5.2.5  表头(标题) 325

5.2.6  自定义小部件 325

5.2.7  调整行列大小 326

5.2.8  拉伸填充剩余空间 327

5.2.9  坐标系 327

5.2.10  信号/槽 327

5.2.11  上下文菜单 327

案例5-2  QTableWidget控件的使用方法 328

5.3  QTreeWidget 335

案例5-3  QTreeWidget控件的使用方法 338

5.4  模型/视图/委托框架 339

5.4.1  模型 339

5.4.2  视图 342

5.4.3  委托 342

5.5  QListView 343

5.5.1  绑定模型和初始化数据 344

5.5.2  增、删、改、查、移 344

5.5.3  列表视图布局 344

5.5.4  其他要点 346

案例5-4  QListView结合QStringListModel的使用方法 346

5.6  QTableView 350

5.6.1  绑定模型和初始化数据 351

5.6.2  模型(QStandardItemModel)的相关方法 351

5.6.3  视图(QTableView)的相关方法 352

5.6.4  表头(标题,QHeaderView)的相关方法 353

5.6.5  上下文菜单 355

案例5-5  QTableView结合QStandardItemModel的使用方法 355

5.7  QTreeView 362

案例5-6  QTreeView控件结合QStandardItemModel模型的使用方法 365

案例5-7  QTreeView和QFileSystemModel的使用方法 366

5.8  自定义模型 367

案例5-8  QTableView控制和自定义模型的使用方法 368

5.9  自定义委托 374

案例5-9  QTableView和自定义委托的使用方法 374

5.10  Qt数据库 381

5.10.1  Qt SQL简介 381

5.10.2  连接数据库 382

5.10.3  执行SQL语句 386

案例5-10  数据库的创建 387

5.10.4  数据库模型 389

5.10.5  数据库模型与视图结合 393

案例5-11  QSqlQueryModel分页视图查询 395

案例5-12  QSqlTableModel排序过滤表 399

案例5-13  QSqlRelationalTableModel关系表单 403

5.10.6  数据感知表单 406

案例5-14  QDataWidgetMapper数据感知表单 407

5.10.7  自定义模型与委托 409

案例5-15  数据库自定义模型+委托案例 409

第6章  高级窗口控件 413

6.1  窗口风格 413

6.1.1  设置窗口风格 413

6.1.2  设置窗口样式 414

6.1.3  设置窗口背景 415

6.1.4  设置窗口透明 418

案例6-1  WinStyle案例 418

6.2  布局管理 420

6.2.1  布局管理的基础知识 420

6.2.2  Q(V/H)BoxLayout 423

案例6-2  QBoxLayout的使用方法 425

6.2.3  QGridLayout 428

案例6-3  QGridLayout的使用方法 429

6.2.4  QFormLayout 431

案例6-4  QGridLayout的使用方法 433

6.2.5  QStackedLayout 434

案例6-5  QStackedLayout的使用方法 435

案例6-6  QLayout布局管理的使用方法 436

6.2.6  QSplitter 439

案例6-7  QSplitter控件的使用方法 440

6.3  容器:装载更多的控件 443

6.3.1  QTabWidget 443

案例6-8  QTabWidget的使用方法 443

6.3.2  QStackedWidget 446

案例6-9  QStackedWidget控件的使用方法 446

6.3.3  QToolBox 449

案例6-10  QToolBox的使用方法 450

6.3.4  QDockWidget 451

案例6-11  QDockWidget控件的使用方法1 452

案例6-12  QDockWidget控件的使用方法2 455

6.3.5  多文档界面QMdiArea和QMdiSubWindow 455

案例6-13  QMdiArea控件和QMdiSubWindow控件的使用方法1 459

案例6-14  QMdiArea和QMdiSubWindow的使用方法2 463

6.3.6  QAxWidget 464

案例6-15  QAxWidget的使用方法 465

6.4  多线程 469

6.4.1  QTimer 469

案例6-16  QTimer的使用方法 470

6.4.2  QThread 472

案例6-17  QThread的使用方法 474

6.4.3  事件处理实现刷新 477

6.5  网页交互 479

6.5.1  加载内容 479

6.5.2  标题和图标 479

6.5.3  QWebEnginePage的相关方法 479

6.5.4  运行JavaScript函数 482

案例6-18  基于QWebEngineView实现基本的Web浏览功能 483

6.6  QSS的UI美化 486

6.6.1  QSS的基本语法规则 486

6.6.2  QSS选择器的类型 487

6.6.3  QSS子控件 489

6.6.4  QSS伪状态 489

6.6.5  颜色冲突与解决方法 490

6.6.6  继承与多样 491

6.6.7  Qt设计师与样式表 492

案例6-19  QSS的使用方法 492

6.6.8  QDarkStyleSheet 496

案例6-20  QDarkStyle的使用方法 497

6.7  QML浅议 497

6.7.1  QML的基本概念 498

6.7.2  QML与JavaScript 498

6.7.3  在Python中调用QML 499

案例6-21  在Python中调用 499

案例6-22  将Python对象暴露给QML(一):上下文属性 500

案例6-23  将Python对象暴露给QML(二):注册类型 502

案例6-24  qml使用Python模型 504

案例6-25  在QML中调用Python属性的方法 506

第7章  信号/槽和事件 511

7.1  信号/槽介绍 511

7.1.1  基本介绍 511

7.1.2  创建信号 513

7.1.3  操作信号 513

7.1.4  槽函数 514

7.2  信号/槽的案例 514

案例7-1  信号/槽的使用方法 515

7.2.1  内置信号+内置槽函数 515

7.2.2  内置信号+自定义槽函数 517

7.2.3  自定义信号+内置槽函数 517

7.2.4  自定义信号+自定义槽函数 518

7.2.5  断开信号与槽连接 518

7.2.6  恢复信号与槽连接 519

7.2.7  装饰器信号与槽连接 521

7.2.8  多线程信号与槽连接 522

7.3  信号/槽参数 523

案例7-2  信号与槽参数 523

7.3.1  内置信号+默认参数 524

7.3.2  自定义信号+默认参数 524

7.3.3  内置信号+自定义参数lambda 525

7.3.4  内置信号+自定义参数partial 526

7.3.5  自定义信号+自定义参数lambda 527

7.3.6  自定义信号+自定义参数partial 528

7.4  基于Qt Designer的信号/槽 529

案例7-3  基于Qt Designer的信号/槽的使用方法 530

7.5  事件处理机制入门 532

7.5.1  事件和信号/槽的区别 533

7.5.2  常见事件类型 533

7.5.3  使用事件处理的方法 536

7.5.4  经典案例分析 537

案例7-4  事件处理的机制方法1-2 537

案例7-5  事件处理机制和方法3 543

案例7-6  事件处理机制的方法4 546

第8章  Python的扩展应用 547

8.1  使用PyInstaller打包项目生成.exe文件 547

8.1.1  安装PyInstaller 547

8.1.2  PyInstaller的用法与参数 548

8.1.3  PyInstaller案例 550

8.2  Pandas在PySide/PyQt中的应用 552

8.2.1  qtpandas的安装 552

8.2.2  官方案例解读 553

8.2.3  设置提升的窗口控件 555

8.2.4  qtpandas的使用 557

8.3  Matplotlib在PyQt中的应用 559

8.3.1  对MatplotlibWidget的解读 560

8.3.2  设置提升的窗口控件 563

8.3.3  MatplotlibWidget的使用 564

8.3.4  更多扩展 565

8.4.2  官方案例解读 567

8.4.3  设置提升的窗口控件 569

8.4.4  PyQtGraph的使用 569

8.4.5  更多扩展 573

8.5  Plotly在PyQt中的应用 573

8.5.1  Plotly的安装 574

8.5.2  案例解读 574

8.5.3  设置提升的窗口控件 575

8.5.4  Plotly的使用 576

8.5.5  Plotly更多扩展 579

8.5.6  Dash的使用 579

8.5.7  Dash的更多扩展 583

第9章  实战应用 584

9.1  量化投资中的应用 584

9.2  券商投研中的应用 593

9.2.1  从爬虫说起 594

9.2.2  程序解读 595

附录A  Qt for Python代码转换 618



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3